Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple clients with access to shared data, backing up data and others.
A storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems (“clients”). The storage operating system stores and manages shared data containers in a set of mass storage devices.
Storage systems are being used extensively in virtual environments where a physical resource is time-shared among a plurality of independently operating processor executable virtual machines. Typically, storage space is presented to a virtual machine as a virtual hard disk (VHD) file. A storage drive (for example, C:\) is then presented to a client via a user interface within a virtual machine context. The client can use the storage drive to access storage space to read and write information.
Cloud computing with virtual machines is becoming popular today. Cloud computing means computing capability that provides an abstraction between a computing resource and its underlying technical architecture (e.g., servers, storage, networks), enabling convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction. The term “cloud” is intended to refer to the Internet and cloud computing allows shared resources.
In the cloud computing environment, storage space is made available to clients by a cloud provider for storing information. Typically, the cloud provider licenses a certain storage space amount to clients. Cloud providers today do not have a mechanism that allows them to accurately provision storage space or market and license storage space based on performance parameters, for example, throughput and latency. Throughput means a number of input/output requests that can be processed within a given duration (IOPS) and latency means delay in processing an I/O (input/output) request. Continuous efforts are being made to efficiently present storage space to clients in the cloud computing environment.